import { EventBus } from './eventbus.js';
let socket = null;

export function initWebSocket() {
    if (typeof WebSocket === 'undefined') {
        console.log('您的浏览器不支持WebSocket');
      } else {
        console.log('您的浏览器支持WebSocket');
       
        if (socket !== null) {
          socket.close();
          socket = null;
        }
        // socket = new WebSocket(socketUrl);
        // // 打开事件
        // socket.onopen = () => {
        //   console.log('websocket已打开');
        // };
        // // 获得消息事件
        // socket.onmessage = (msg) => {
        //   const str = msg.data;
        //   const map = JSON.parse(str);
        //   console.log(map);

        //   if (map.out) {
        //     console.log("Received 'out' data:", map.out);
        //     // 处理 'out' 数据
        //     this.elecMaterialOutDetailList.push(map.out);
        //     console.log(this.elecMaterialOutDetailList);
        //   } else if (map.in) {
        //     console.log("Received 'in' data:", map.in);
        //     // 处理 'in' 数据
        //     this.elecMaterialInDetailList.push(map.in);
        //   }

        //   // 发现消息进入    开始处理前端触发逻辑
        // };

        socket = new WebSocket('ws://localhost:17023/imserver');

        socket.onopen = () => {
            console.log('WebSocket连接已打开');
        };

        socket.onclose = () => {
            console.log('WebSocket连接已关闭');
            // 在连接关闭时，可以选择尝试重新连接
            // 例如，调用 initWebSocket() 重新建立连接
        };

        socket.onmessage = (event) => {
            console.log('收到WebSocket消息:', event.data);
            var response = JSON.parse(event.data);
            console.log(response.key)

            if(response.key){
                EventBus.$emit(response.key, response);
            }

            // 在接收到消息时，可以将消息发送到对应页面的组件
            // 例如，使用事件总线或Vuex进行消息传递
        };
                // 关闭事件
        socket.onclose = () => {
          console.log('websocket已关闭');
        };
        // 发生了错误事件
        socket.onerror = () => {
          console.log('websocket发生了错误');
        };
     
    }
}

export function sendWebSocketMessage(message) {
  if (socket && socket.readyState === WebSocket.OPEN) {
    socket.send(JSON.stringify(message));
  } else {
    console.error('WebSocket连接未打开');
  }
}